Soru & Cevap

WebView SSL Hata İşleyici uyarılarını düzeltme

01.02.2019 - 10:42

Merhaba android ile webview uygulama yaptım bunu google play'de yayınlamak istiyorum fakat red alıyorum. Şu makaleyi yönlendiriyor ama pek anlamadım yardımcı olurmusunuz?
Kodları aşağıya ekliyorum nerede ne şekilde düzenleme yapmam lazım yardımcı olursanız sevinirim.

https://support.google.com/faqs/answer/7071387?hl=tr

Kodlar : 

import android.net.http.SslError;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.SslErrorHandler;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        WebView url = (WebView)findViewById(R.id.wv1);
        url.getSettings().setJavaScriptEnabled(true);
        url.setWebViewClient(new WebViewClient());
        url.loadUrl("https://www.aliaygir.com.tr");
        getSupportActionBar().hide();
        url.setWebViewClient( new SSLTolerentWebViewClient());
    }

    // SSL Error Tolerant Web View Client
    private class SSLTolerentWebViewClient extends WebViewClient {

        @Override
        public void onReceivedSslError (WebView view, SslErrorHandler handler,SslError error) {
            handler.proceed();
        }

    }
}


 

265 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user ilkertr
ilkertr
14.12.2019 - 12:31

 @Override
                public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {
                    //final AlertDialog.Builder builder = new AlertDialog.Builder(OnlinePayment.this);
                    String msg="";
                    if(error.getPrimaryError()==SslError.SSL_DATE_INVALID
                            || error.getPrimaryError()== SslError.SSL_EXPIRED
                            || error.getPrimaryError()== SslError.SSL_IDMISMATCH
                            || error.getPrimaryError()== SslError.SSL_INVALID
                            || error.getPrimaryError()== SslError.SSL_NOTYETVALID
                            || error.getPrimaryError()==SslError.SSL_UNTRUSTED) {
                        if(error.getPrimaryError()==SslError.SSL_DATE_INVALID){
                            msg="The date of the certificate is invalid";
                        }else if(error.getPrimaryError()==SslError.SSL_INVALID){
                            msg="A generic error occurred";
                        }
                        else if(error.getPrimaryError()== SslError.SSL_EXPIRED){
                            msg="The certificate has expired";
                        }else if(error.getPrimaryError()== SslError.SSL_IDMISMATCH){
                            msg="Hostname mismatch";
                        }
                        else if(error.getPrimaryError()== SslError.SSL_NOTYETVALID){
                            msg="The certificate is not yet valid";
                        }
                        else if(error.getPrimaryError()==SslError.SSL_UNTRUSTED){
                            msg="The certificate authority is not trusted";
                        }
                    }
                    Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();

                    final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                    builder.setTitle("Uyarı:");
                    builder.setMessage("Telefonunuz yazılımı güncel değil. Devam etmek istiyormusunuz?");
                    builder.setPositiveButton("Evet", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            handler.proceed();
                        }
                    });
                    builder.setNegativeButton("Hayır", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            handler.cancel();
                            finish();
                        }
                    });
                    final AlertDialog dialog = builder.create();
                    dialog.show();


                }

 

picture-84564-1548924191.jpg
emrekaplan606
01.02.2019 - 02:02

Merhaba,

bunun içinde diğer post un altına bir link bıraktım. İncelemende fayda var. Kolay gelsin.